package com.sutao.jvm.OOM;

import java.util.ArrayList;
import java.util.List;

/**
 * VM Args：
 * -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
 * -Xms20m -Xmx20m -XX:+PrintGCDetails
 * @author sutao
 * @create 2020-04-26 15:28
 *
 * java.lang.OutOfMemoryError: Java heap space
 *
 * Java堆用于储存对象实例，我们只要不断地创建对象，并且保证GC Roots到对象之间有可达路径
 * 来避免垃圾回收机制清除这些对象，那么随着对象数量的增加，总容量触及最大堆的容量限制后就会
 * 产生内存溢出异常。
 */
public class HeepOOM {

    static class OOMObject {
    }
    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<OOMObject>();
        while (true) {
            list.add(new OOMObject());
        }
    }

}
